Make anchored patterns work as they did before.
authorMatthias Clasen <mclasen@redhat.com>
Fri, 22 Jul 2005 15:34:32 +0000 (15:34 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 22 Jul 2005 15:34:32 +0000 (15:34 +0000)
2005-07-22  Matthias Clasen  <mclasen@redhat.com>

* gdk-pixbuf-io.c (format_check): Make anchored patterns work
as they did before.

gdk-pixbuf/ChangeLog
gdk-pixbuf/gdk-pixbuf-io.c

index c79228407682f088676cb93c2da1d7e71c9bb1d9..7d0be6bca010894910736e03687405731f689649 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-22  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk-pixbuf-io.c (format_check): Make anchored patterns work 
+       as they did before.
+
 2005-07-22  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk-pixbuf-io.c (format_check): Interpret patterns where
index a8faa782f9bface00e013ff96a22fefe77cd6f32..f67dd0355ccdea4aad23dc65f30d9043c051e651 100644 (file)
@@ -51,21 +51,21 @@ format_check (GdkPixbufModule *module, guchar *buffer, int size)
        int i, j;
        gchar m;
        GdkPixbufModulePattern *pattern;
-       gboolean unanchored;
+       gboolean anchored;
        guchar *prefix, *mask;
 
        for (pattern = module->info->signature; pattern->prefix; pattern++) {
                if (pattern->mask && pattern->mask[0] == '*') {
                        prefix = pattern->prefix + 1;
                        mask = pattern->mask + 1;
-                       unanchored = TRUE;
+                       anchored = FALSE;
                }
                else {
                        prefix = pattern->prefix;
                        mask = pattern->mask;
-                       unanchored = FALSE;
+                       anchored = TRUE;
                }
-               for (i = 0; unanchored && i < size; i++) {
+               for (i = 0; i < size; i++) {
                        for (j = 0; i + j < size && prefix[j] != 0; j++) {
                                m = mask ? mask[j] : ' ';
                                if (m == ' ') {
@@ -85,8 +85,12 @@ format_check (GdkPixbufModule *module, guchar *buffer, int size)
                                                break;
                                }
                        } 
+
                        if (prefix[j] == 0) 
                                return pattern->relevance;
+
+                       if (anchored)
+                               break;
                }
        }
        return 0;